حافظه
(RAM(Random Access Memory شناخته ترین نوع
حافظه در دنیای کامپیوتر است . روش دستیابی به این نوع از حافظه ها
تصادفی است ، چون می توان به هر سلول حافظه
مستقیما" دستیابی پیدا کرد . در مقابل حافظه های
RAM ، حافظه های(SAM(Serial Access
Memory
وجود دارند. حافظه های SAM اطلاعات را
در مجموعه ای از سلول های حافظه ذخیره و صرفا" امکان دستیابی به آنها
بصورت ترتیبی وجود خواهد داشت. ( نظیر نوار کاست ) در صورتیکه داده مورد نظر
در محل جاری نباشد هر یک از سلول های حافظه به ترتیب بررسی شده تا داده
مورد نظر پیدا گردد. حافظه های SAM در
مواردیکه پردازش داده ها الزاما" بصورت ترتیبی خواهد بود مفید می باشند
( نظیر حافظه موجود بر روی کارت های گرافیک ). داده های ذخیره شده در
حافظه RAM با هر اولویت دلخواه قابل دستیابی
خواهند بود.
مبانی حافظه
های RAM
حافظه
RAM ، یک تراشه مدار مجتمع
(IC) است که از میلیون ها ترانزیستور
و خازن تشکیل می گردد .در اغلب حافظه ها با
استفاده و بکارگیری یک خازن و یک ترانزیستور می توان یک سلول را
ایجاد کرد. سلول فوق قادر به نگهداری یک
بیت داده می باشد. خازن
اطلاعات مربوط به بیت را که یک و یا صفر است ، در خود نگهداری خواهد
کرد.عملکرد ترانزیستور مشابه یک سوییچ بوده که امکان کنترل مدارات
موجود بر روی تراشه حافظه را بمنظور خواندن
مقدار ذخیره شده در خازن و یا تغییر وضعیت مربوط به آن
، فراهم می
نماید.خازن مشابه یک ظرف ( سطل) بوده که قادر به
نگهداری الکترون ها است . بمنظور ذخیره سازی مقدار" یک" در حافظه، ظرف فوق می بایست از الکترونها پر گردد. برای
ذخیره سازی مقدار صفر، می بایست ظرف فوق خالی گردد.مسئله مهم در رابطه با خازن، نشت اطلاعات است ( وجود سوراخ
در ظرف ) بدین ترتیب پس از گذشت چندین میلی ثانیه یک ظرف مملو از الکترون تخلیه می گردد.
بنابراین بمنظور اینکه حافظه بصورت پویا اطلاعات خود را نگهداری
نماید ، می
بایست پردازنده و یا " کنترل کننده حافظه " قبل از تخلیه شدن خازن، مکلف
به شارژ مجدد آن بمنظور نگهداری مقدار "یک" باشند.بدین منظور کنترل
کننده حافظه اطلاعات حافظه را خوانده و مجددا" اطلاعات را بازنویسی می
نماید.عملیات فوق (Refresh)، هزاران مرتبه
در یک ثانیه تکرار خواهد شد.علت نامگذاری DRAM
بدین دلیل است که این نوع حافظه ها مجبور به بازخوانی اطلاعات بصورت
پویا خواهند بود. فرآیند تکراری " بازخوانی / بازنویسی اطلاعات" در این نوع
حافظه ها باعث می شود که زمان تلف و سرعت حافظه کند گردد.
سلول های حافظه بر روی یک تراشه سیلیکون و بصورت آرائه ای مشتمل از
ستون ها ( خطوط بیت ) و سطرها ( خطوط کلمات) تشکیل می گردند. نقطه
تلاقی یک سطر و ستون بیانگر آدرس سلول حافظه است .
حافظه های
DRAM با ارسال یک شارژ به ستون مورد نظر
باعث فعال شدن ترانزیستور در هر بیت ستون، خواهند شد.در زمان نوشتن خطوط
سطر شامل وضعیتی خواهند شد که خازن می بایست به آن وضغیت تبدیل گردد. در
زمان خواندن Sense-amplifier ، سطح شارژ موجود
در خازن را اندازه گیری می نماید. در صورتیکه سطح فوق بیش از پنجاه
درصد باشد مقدار "یک" خوانده شده و در غیراینصورت مقدار "صفر" خوانده خواهد
شد. مدت زمان انجام عملیات فوق بسیار کوتاه بوده و بر حسب نانوثانیه (
یک میلیاردم ثانیه ) اندازه گیری می گردد. تراشه حافظه ای که دارای سرعت
70 نانوثانیه است ، 70 نانو ثانیه طول خواهد به منظور تا عملیات خواندن و
بازنویسی هر سلول را انجام دهد.
سلول های
حافظه در صورتیکه از روش هائی بمنظور اخذ اطلاعات موجود در سلول ها
استفاده ننمایند، بتنهائی فاقد ارزش خواهند
بود.
بنابراین لازم است سلول های حافظه دارای یک زیرساخت کامل حمایتی از مدارات خاص
دیگر باشند.مدارات فوق عملیات زیر را انجام خواهند داد :
-
مشخص نمودن
هر سطر و ستون (انتخاب آدرس سطر و انتخاب آدرس ستون ) -
نگهداری
وضعیت بازخوانی و باز نویسی داده ها ( شمارنده ) -
خواندن و
برگرداندن سیگنال از یک سلول ( Sense amplifier)
-
اعلام خبر
به یک سلول که می بایست شارژ گردد و یا ضرورتی به شارژ وجود ندارد ( Write
enable)
سایر عملیات
مربوط به "کنترل کننده حافظه" شامل مواردی نظیر : مشخص نمودن
نوع سرعت ، میزان حافظه و بررسی خطاء است .
حافظه های
SRAM دارای یک تکنولوژی کاملا" متفاوت می
باشند. در این نوع از حافظه ها از فلیپ فلاپ برای ذخیره سازی هر
بیت
حافظه استفاده می گردد. یک فلیپ فلاپ برای یک سلول حافظه،
از چهار
تا شش ترانزیستور استفاده می کند . حافظه های SRAM
نیازمند بازخوانی / بازنویسی اطلاعات نخواهند بود، بنابراین سرعت این
نوع از حافظه ها بمراتب از حافظه های DRAM
بیشتر است .با توجه به اینکه حافظه های SRAM
از بخش های متعددی تشکیل می گردد، فضای استفاده شده آنها بر
روی یک تراشه بمراتب بیشتر از یک سلول حافظه از نوع
DRAM خواهد بود. در چنین مواردی میزان حافظه بر روی یک تراشه کاهش
پیدا کرده و همین امر می تواند باعث افزایش قیمت این نوع از حافظه ها
گردد. بنابراین حافظه های SRAM سریع و
گران و حافظه های DRAM ارزان و کند می باشند
. با توجه به موضوع فوق ، از حافظه های SRAM
بمنظور افزایش سرعت پردازنده ( استفاده از Cache)
و از حافظه های DRAM برای فضای حافظه
RAM در کامپیوتر استفاده می گردد.
ما ژول های
حافظه
تراشه
های
حافظه در کامییوترهای شخصی در آغاز از یک پیکربندی مبتنی بر
Pin با نام (DIP(Dual
line Package استفاده می کردند. این پیکربندی مبتنی بر
پین، می توانست لحیم کاری
درون حفره هائی برروی برداصلی کامپیوتر
و یا اتصال به یک سوکت بوده که خود به برد اصلی لحیم
شده است .همزمان با افزایش حافظه ، تعداد تراشه های مورد نیاز، فضای
زیادی از برد اصلی را اشغال می کردند.از روش فوق تا زمانیکه میزان
حافظه حداکثر دو مگابایت بود ، استقاده می گردید.
راه حل مشکل
فوق، استقرار تراشه های حافظه بهمراه تمام عناصر و اجزای حمایتی در یک
برد مدار چاپی مجزا (Printed circut Board)
بود. برد فوق در ادامه با استفاده از یک نوع خاص از کانکنور ( بانک
حافظه ) به برد اصلی متصل می گردید. این نوع تراشه ها اغلب از یک
پیکربندی pin با نام
Small Outline J-lead ) soj
) استفاده می کردند . برخی از تولیدکنندگان دیگر که تعداد آنها
اندک است از پیکربندی دیگری با نام Thin
Small Outline Package )tsop) استفاده می
نمایند. تفاوت اساسی بین این نوع پین های جدید و پیکربندی
DIP اولیه در این است که تراشه های
SOJ و TSOR بصورت
surface-mounted در PCB
هستند. به عبارت دیگر پین ها
مستقیما" به سطح برد لحیم خواهند شد . ( نه داخل حفره ها و یا سوکت
) .
تراشه
ها ی حافظه از طریق کارت هائی که " ماژول " نامیده می شوند قابل دستیابی
و استفاده می باشند.. شاید تاکنون با مشخصات یک سیستم که میزان حافظه
خود را بصورت
32 * 8 , یا 16 * 4 اعلام می نماید
، برخورده کرده
باشید.اعداد فوق تعداد تراشه ها ضربدر ظرفیت هر یک از تراشه ها
را که بر حسب مگابیت اندازه گیری می گردند،
نشان می دهد. بمنظور محاسبه
ظرفیت ، می توان با تقسیم نمودن آن بر هشت میزان مگابایت را بر روی هر
ماژول مشخص کرد.مثلا" یک ماژول 32 * 4 ،
بدین معنی است که ماژول دارای چهار تراشه 32 مگابیتی است .با ضرب 4 در
32 عدد 128 ( مگابیت) بدست می آید . اگر عدد فوق را بر هشت تقسیم نمائیم به ظرفیت
16 مگابایت خواهیم رسید.
نوع برد و کانکتور استفاده شده
در حافظه های RAM ، طی پنج سال اخیر
تفاوت کرده است . نمونه های اولیه اغلب بصورت اختصاصی
تولید می گردیدند . تولید کنندگان متفاوت کامپیوتر بردهای حافظه را بگونه ای طراحی می
کردند که
صرفا" امکان استفاده از آنان در سیستم های خاصی وجود داشت . در
ادامه (SIMM (Single
in-line memory مطرح
گردید. این نوع از بردهای حافظه از 30 پین کانکتور استفاده کرده و طول
آن حدود 3/5 اینچ و عرض آن یک اینچ بود ( یازده سانتیمتر در 2/5
سانتیمتر ) .در اغلب کامپیوترها می بایست بردهای
SIMM بصورت زوج هائی که دارای ظرفیت و سرعت یکسان باشند،
استفاده گردد. علت این است که پهنای گذرگاه داده
بیشتر از یک SIMM است . مثلا" از دو
SIMM هشت مگابایتی برای داشتن 16 مگابایت
حافظه بر روی سیستم استفاده می گردد. هر SIMM
قادر به ارسال هشت بیت داده در هر لحظه خواهد بود با توجه به این موضوع
که گذرگاه داده شانزده بیتی است از نصف پهنای باند استفاده شده و این
امر منطقی بنظر نمی آید.در ادامه بردهای SIMM
بزرگتر شده و دارای ابعاد 25 / 4 * 1 شدند( 11 سانتیمتر در 2/5
سانتیمتر ) و از 72 پین برای افزایش پهنای باند و امکان افزایش حافظه
تا میزان 256 مگابایت بدست آمد.
بموازات
افزایش سرعت و ظرفیت پهنای باند پردازنده ها، تولیدکنندگان از استاندارد
جدید دیگری با نام dual in-line
memory module)DIMM) استفاده کردند.این نوع بردهای حافظه دارای
168 پین و ابعاد 1 * 5/4 اینچ ( تقریبا" 14 سانتیمتر در 2/5 سانتیمتر )
بودند.ظرفیت بردهای فوق در هر ماژول از هشت تا 128 مگابایت را شامل و
می توان آنها را بصورت تک ( زوج الزامی نیست ) استفاده کرد. اغلب ماژول
های حافظه با 3/3 ولت کار می کنند. در سیستم های مکینتاش از 5 ولت
استفاده می نمایند. یک استاندارد جدید دیگر با نام
Rambus in-line memory module
، RIMM از نظر اندازه و پین با
DIMM قابل مقایسه است ولی بردهای فوق
، از یک نوع خاص گذرگاه داده حافظه
برای افزایش سرعت استفاده می نمایند.
اغلب بردهای
حافظه در کامپیوترهای دستی (notebook) از
ماژول های حافظه کاملا" اختصاصی استفاده می
نمایند ولی برخی از تولیدکنندگان حافظه از استاندارد
small outline dual in-line
memory module) SODIMM
استفاده می نمایند. بردهای حافظه SODIMM
دارای ابعاد 1* 2 اینچ ( 5 سانتیمنتر در 5
/2 سانتیمنتر ) بوده و از 144 پین استفاده می نمایند. ظرفیت این نوع
بردها ی حافظه در هر ماژول از 16 مگابایت تا 256 مگابایت می تواند
باشد.
بررسی خطاء
اکثر حافظه هائی
که امروزه در کامپیوتر استفاده می گردند دارای ضریب اعتماد
بالائی می باشند.در اکثر سیستم ها ،" کنترل کننده حافظه " درزمان روشن
کردن سیستم عملیات بررسی صحت عملکرد حافظه را انجام می دهد. تراشه های
حافظه با استفاده از روشی با نام Parity ، عملیات بررسی خطاء را انحام می دهند.
تراشه های Parity دارای یک بیت اضافه برای
هشت بیت داده می باشند.روشی که Parity
بر اساس آن کار
می کند بسیار ساده است . در ابتداParity زوج بررسی
می گردد. زمانیکه هشت بیت ( یک بایت) داده ئی را دریافت می دارند، تراشه
تعداد یک های موجود در آن را محاسبه می نماید.در صورتیکه تعداد یک
های موجود فرد باشد مقدار بیت
Parity یک خواهد شد. در صورتیکه تعداد یک
های موجود زوج باشد مقدار بیت
parity صفر خواهد شد. زمانیکه داده از بیت
های مورد نظر خوانده می شود ، مجددا" تعداد یک های موجود محاسبه و با بیت
parity مقایسه می گردد.درصورتیکه مجموع فرد و بیت Parity
مقدار یک باشد داده مورد نظر درست بوده و برای پردازنده ارسال می گردد.
اما در صورتیکه مجموع فرد بوده و بیت
parity صفر باشد تراشه متوجه بروز یک خطاء
در بیت ها شده و داده مورد نظر کنار گذاشته می شود.
parity فرد نیز به همین روش کار می کند در روش فوق زمانی بیت
parity یک خواهد شد که تعداد یک های
موجود در بایت زوج باشد.
مسئله مهم در
رابطه با Parity عدم تصحیح خطاء پس
از تشخیص است .
در صورتیکه یک بایت از داده ها با بیت Parity
خود مطابقت ننماید داده دور انداخته شده سیستم مجددا" سعی
خود را انجام خواهد داد. کامپیوترها نیازمند یک سطح بالاتربرای برخورد
با خطاء می باشند.برخی از سیستم ها
از روشی با نام به error correction
code)ECC)
استفاده می نمایند. در روش فوق از بیت های اضافه برای کنترل داده
در هر یک از بایت ها استفاده می گردد. اختلاف روش فوق با روش
Parity در این است که از چندین بیت برای
بررسی خطاء استفاده می گردد. ( تعداد بیت های استفاده شده بستگی به
پهنای گذرگاه دارد ) حافظه های مبتنی بر روش فوق با استفاده از
الگوریتم مورد نظر نه تنها قادر به تشخیص خطا بوده بلکه امکان تصحیح
خطاهای بوجود آمده نیز فراهم می گردد. ECCهمچنین
قادر به تشخیص خطاها در مواردی است که یک یا چندین
بیت در یک بایت با مشکل مواجه گردند .